/* * Copyright (C) 2009 Christian Gawron * * This program is free software; you can redistribute it and/or modify * it under the terms of the GNU General Public License version 2 as * published by the Free Software Foundation. * * This program is distributed in the hope that it will be useful, * but WITHOUT ANY WARRANTY; without even the implied warranty of * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the * GNU General Public License for more details. * * * Author: Christian Gawron * Create date: 19-Jun-2009 */ package uk.me.parabola.mkgmap.ant; import java.util.ArrayList; import java.util.List; import uk.me.parabola.mkgmap.CommandArgsReader; import uk.me.parabola.mkgmap.main.Main; import org.apache.tools.ant.BuildException; import org.apache.tools.ant.Task; import org.apache.tools.ant.types.Path; /** * This class provides an ant task for mkgmap. * Used like this: * <target name="mkgmap"> <taskdef name="mkgmap" classname="uk.me.parabola.mkgmap.ant.MKGMapTask" classpath="dist/mkgmap.jar:."/> <mkgmap options="mkgmap.cfg"> <path> <fileset dir="maps" includes="*.osm" /> </path> </mkgmap> </target> * */ @SuppressWarnings({"UnusedDeclaration"}) public class MKGMapTask extends Task { private final ArrayList<Path> paths = new ArrayList<Path>(); private String configFile; public void addPath(Path path) { paths.add(path); } public void setOptions(String configFile) { this.configFile = configFile; } public void execute() { List<String> args = new ArrayList<String>(); try { CommandArgsReader argsReader = new CommandArgsReader(new Main()); if (configFile != null) args.add("--read-config=" + configFile); for (Path path : paths) { String[] includedFiles = path.list(); for (String filename : includedFiles) { log("processing " + filename); args.add("--input-file=" + filename); } } argsReader.readArgs(args.toArray(new String[args.size()])); } catch (Exception ex) { //log(ex, 1); throw new BuildException(ex); } } }